<?php

namespace Admin\Controller;
use Think\Controller;

class UploadsController extends Controller {

    //上传方法
    public function upload()
    {
        header("Content-Type:text/html;charset=utf-8");
        $upload = new \Think\Upload();
        $upload->maxSize   =     3145728 ;
        $upload->exts      =     array('xls', 'xlsx');
        $upload->savePath  =      '/'; 
        $info   =   $upload->uploadOne($_FILES['file']);
        $filename = './Uploads_files'.$info['savepath'].$info['savename'];
        $exts = $info['ext'];
        if(!$info) {
              $this->error($upload->getError());
          }else{
                  $this->goods_import($filename, $exts);
        }
    }

    //导入数据页面
    public function index()
    {
        $this->display('goods_import');
    }

    //导入数据方法
    protected function goods_import($filename, $exts='xls')
    {
        $qudao=M('qudao');
        //导入PHPExcel类库，因为PHPExcel没有用命名空间，只能inport导入
        import("Org.Util.PHPExcel");
        //创建PHPExcel对象，注意，不能少了\
        $PHPExcel=new \PHPExcel();
        //如果excel文件后缀名为.xls，导入这个类
        if($exts == 'xls'){
            import("Org.Util.PHPExcel.Reader.Excel5");
            $PHPReader=new \PHPExcel_Reader_Excel5();
        }else if($exts == 'xlsx'){
            import("Org.Util.PHPExcel.Reader.Excel2007");
            $PHPReader=new \PHPExcel_Reader_Excel2007();
        }


        //载入文件
        $PHPExcel=$PHPReader->load($filename,$encode='utf-8');
        //获取表中的第一个工作表，如果要获取第二个，把0改为1，依次类推
        $currentSheet=$PHPExcel->getSheet(0);
        //获取总列数
        $allColumn=$currentSheet->getHighestColumn();
        //获取总行数
        $allRow=$currentSheet->getHighestRow();
        //循环获取表中的数据，$currentRow表示当前行，从哪行开始读取数据，索引值从0开始
        for($currentRow=1;$currentRow<=$allRow;$currentRow++){
            //从哪列开始，A表示第一列
            for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
                //数据坐标
                $address=$currentColumn.$currentRow;
                //读取到的数据，保存到数组$arr中
                $cell =$currentSheet->getCell($address)->getValue();
                //$cell = $data[$currentRow][$currentColumn];
                if($cell instanceof PHPExcel_RichText){
                    $cell  = $cell->__toString();
                }
              /*******************数据处理*****************************/
              if($currentColumn=='A'){
                 $arr[$currentRow]['qudao_type']=$cell;
              }
              elseif($currentColumn=='B'){
                 $arr[$currentRow]['qudao_name']=$cell;
              }
              elseif($currentColumn=='C'){
                 $arr[$currentRow]['qudao_nick_name']=$cell;
              }
           

            }
           
              /**
               * 第一行不导入
               */
              if($currentRow>1){
                 $rule_import=$qudao->where($arr[$currentRow])->find();
                 if(!$rule_import){
                    $arr[$currentRow]['qudao_pro_id']=$_SESSION['user']['u_pro_id'];
                    $arr[$currentRow]['qudao_city_id']=$_SESSION['user']['u_city_id'];
                    $arr[$currentRow]['qudao_area_id']=$_SESSION['user']['u_area_id'];
                    $arr_count[$currentRow]=$qudao->data($arr[$currentRow])->add();
                 }
              }
           /*******************数据处理*****************************/
        }
          $this->success('导入成功',U('Qudao/add_qudao_name',array('res_arr'=>$arr_count)),1);

    }













    /**************************导出************************/

   public function push(){
         import("Org.Util.PHPExcel");
         //创建PHPExcel对象，注意，不能少了
         error_reporting(E_ALL);
         date_default_timezone_set('Europe/London');
         $objPHPExcel = new \PHPExcel();

         $name='Excel';
        /*以下是一些设置 ，什么作者  标题啊之类的*/
         $objPHPExcel->getProperties()->setCreator("JAMES")
                               ->setLastModifiedBy("a")
                               ->setTitle("b")
                               ->setSubject("c")
                               ->setDescription("d")
                               ->setKeywords("Dorder")
                              ->setCategory("result file");
         /*以下就是对处理Excel里的数据， 横着取数据，主要是这一步，其他基本都不要改*/
          /**
           * 导出格式 开始
           */

             $where_qudao['qudao_pro_id']=session('user.u_pro_id');
             $where_qudao['qudao_city_id']=session('user.u_city_id');
             $objPHPExcel->setActiveSheetIndex(0)
                         //Excel的第A列，uid是你查出数组的键值，下面以此类推
                          ->setCellValue('A1', '类型')   
                          ->setCellValue('B1', '全称')
                          ->setCellValue('C1', '昵称');

            $res_data=M('Qudao')->where($where_qudao)->select();
            for ($i=2;$i<count($res_data)+2;$i++){
             $objPHPExcel->setActiveSheetIndex(0)
                         //Excel的第A列，uid是你查出数组的键值，下面以此类推
                          ->setCellValue("A$i", $res_data[$i-2]['qudao_type'])   
                          ->setCellValue("B$i", $res_data[$i-2]['qudao_name'])
                          ->setCellValue("C$i", $res_data[$i-2]['qudao_nick_name']);
            }
          /**
           * 导出格式 结束
           */
            $objPHPExcel->getActiveSheet()->setTitle('User');
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');   
            header('Content-Disposition: attachment;filename="评估令渠道.xlsx"');
            header('Cache-Control: max-age=0');
            import('Org.Util.PHPExcel.IOFactory');
            $objWriter =  \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
            $objWriter->save('php://output'); 
         }

    /**
     * 产品导出
     * @DateTime:    [2018-03-10 09:43:56]
     */
    public function cp_push(){


        $bm_goods_gx=M('goods_gx');
        $list=$bm_goods_gx
           ->alias('a')
           ->join('bm_goods_foundation b ON a.id=b.gx_id','LEFT')
           ->field('b.name,b.dtypename,b.qudaoname,a.id,a.timeda')
           ->where("a.shifou = 2 and b.u_id=".session('user.u_id'))
           ->group('a.id')
           ->limit($Page->firstRow.','.$Page->listRows)
           ->select();
          foreach ($list as $key => $value) {
            foreach ($value as $k => $v) {
              if($k=='dtypename'){
                 $data[$key][$k]=qudao_type($v);
              }
              elseif ($k=='id') {
                 $data[$key][$k]=change($v);
              }
              else{
                 $data[$key][$k]=$v;
              }

            }
          }


         import("Org.Util.PHPExcel");
         //创建PHPExcel对象，注意，不能少了
         error_reporting(E_ALL);
         date_default_timezone_set('Europe/London');
         $objPHPExcel = new \PHPExcel();

         $name='Excel';
        /*以下是一些设置 ，什么作者  标题啊之类的*/
         $objPHPExcel->getProperties()->setCreator("JAMES")
                               ->setLastModifiedBy("a")
                               ->setTitle("b")
                               ->setSubject("c")
                               ->setDescription("d")
                               ->setKeywords("Dorder")
                              ->setCategory("result file");
         /*以下就是对处理Excel里的数据， 横着取数据，主要是这一步，其他基本都不要改*/
          /**
           * 导出格式 开始
           */

             $where_qudao['qudao_pro_id']=session('user.u_pro_id');
             $where_qudao['qudao_city_id']=session('user.u_city_id');
             $objPHPExcel->setActiveSheetIndex(0)
                         //Excel的第A列，uid是你查出数组的键值，下面以此类推
                          ->setCellValue('A1', '编号')
                          ->setCellValue('B1', '产品名称')
                          ->setCellValue('C1', '渠道类型')
                          ->setCellValue('D1', '适用渠道')
                          ->setCellValue('E1', '产品类型')
                          ->setCellValue('F1', '添加时间');

            for ($i=2;$i<count($data)+2;$i++){
             $objPHPExcel->setActiveSheetIndex(0)
                         //Excel的第A列，uid是你查出数组的键值，下面以此类推
                          ->setCellValue("A$i", $i-1)
                          ->setCellValue("B$i", $data[$i-2]['name'])
                          ->setCellValue("C$i", $data[$i-2]['dtypename'])
                          ->setCellValue("D$i", $data[$i-2]['qudaoname'])   
                          ->setCellValue("E$i", $data[$i-2]['id'])
                          ->setCellValue("F$i", $data[$i-2]['timeda']);
            }
            /**
             * 导出格式 结束
             */
            $objPHPExcel->getActiveSheet()->setTitle('User');
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');   
            header('Content-Disposition: attachment;filename="所有渠道列表.xlsx"');
            header('Cache-Control: max-age=0');
            import('Org.Util.PHPExcel.IOFactory');
            $objWriter =  \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
            $objWriter->save('php://output'); 
    }
    /**
     * 导出用户数据子账号列表
     * @return [type] [description]
     */
    public function push_zi_user(){
         $data=re_download($_GET['web_id']);
         import("Org.Util.PHPExcel");
         //创建PHPExcel对象，注意，不能少了
         error_reporting(E_ALL);
         date_default_timezone_set('Europe/London');
         $objPHPExcel = new \PHPExcel();

         $name='Excel';
        /*以下是一些设置 ，什么作者  标题啊之类的*/
         $objPHPExcel->getProperties()->setCreator("JAMES")
                               ->setLastModifiedBy("a")
                               ->setTitle("b")
                               ->setSubject("c")
                               ->setDescription("d")
                               ->setKeywords("Dorder")
                              ->setCategory("result file");
         /*以下就是对处理Excel里的数据， 横着取数据，主要是这一步，其他基本都不要改*/
          /**
           * 导出格式 开始
           */
             $objPHPExcel->setActiveSheetIndex(0)
                  ->setCellValue("A1","名称")
                  ->setCellValue("B1","电话")
                  ->setCellValue("C1","等级");
            for ($i=2; $i<count($data)+2 ; $i++) { 
               $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue("A$i",$data[$i-2]['web_name'])
                    ->setCellValue("B$i",$data[$i-2]['web_phone'])
                    ->setCellValue("C$i",$data[$i-2]['rand']);
            }

            

          /**
           * 导出格式 结束
           */
            $objPHPExcel->getActiveSheet()->setTitle('User');
            header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');   
            header('Content-Disposition: attachment;filename="子账号列表.xlsx"');
            header('Cache-Control: max-age=0');
            import('Org.Util.PHPExcel.IOFactory');
            $objWriter =  \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
            $objWriter->save('php://output'); 
    }
    /**************************导出************************/


}